#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include "cJSON.h"
/**
 * 目标：1、引入cjson 库依赖文件(cJSON.c/cJSON.h)
 *      2、cjson 库基本使用 
 */
int main(){
  
    // 第一步：从指定文件读取json 字符串
    FILE *file = fopen("output.json", "r");
    if(file == NULL){
        perror("fopen failed !!\n");
        return -1;
    }
    char buffer[1024];
    // 初始化
    memset(buffer, 0,1024);
    // 文件读取
    fread(buffer, 1024, 1, file);
    // 文件关闭
    fclose(file);
 
     // 第二步：解析json 字符串
     cJSON *jsonObject = cJSON_Parse(buffer);
     if(jsonObject == NULL){
        perror("Parse failed!\n");
        return -1;
 
     }
     // 第三步：解析键值对
    cJSON *name =cJSON_GetObjectItem(jsonObject, "name");
    char *content = cJSON_Print(name);
    printf("%s\n",  content);
 
    // 第四步: 解析JSON对象
    cJSON *wife = cJSON_GetObjectItem(jsonObject, "wife");
    content = cJSON_Print(wife);
    printf("%s\n",  content);
 
    // 第五步: 解析JSON数组
    cJSON *childs = cJSON_GetObjectItem(jsonObject, "childs");
    content = cJSON_Print(childs);
    printf("%s\n",  content);
 
 
     // 释放cJSON 对象和字符串
    cJSON_Delete(jsonObject);
 
    free(content);
 
    return 0;
}
